package class_5;

import java.io.*;
public class Coding_inputLong {
	public static void f1() throws IOException{
		System.out.println("f1函数测试输入:");
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StreamTokenizer in = new StreamTokenizer(br);
		PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
		in.nextToken();
		//这种处理输入数据的方式:
		//因为in.nval本身是一个浮点数（double类型），根据浮点数在内存中的存储。
		//它保留32位存储小数部分， 对比同64位的long类型，有更少的位数存储整数。
		//这意味64位double转化成64位long类型， 可能会丢精度。
		//对于逼近long的极限这种丢失就很明显了
		long num = (long)in.nval;
		out.println(num);
		out.flush();
	}
	
	public static void f2()throws IOException {
		System.out.println("f2测试函数输入:");
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
		String s = br.readLine();//读取数字字符串
		long num = Long.valueOf(s);//用Long类自己封装的方法，就避免了精度丢失的问题。
		out.println(num);
		out.flush();
		return ;
	}
	public static void main(String[] args) throws IOException {
		f2();
	}
}
